As more content becomes available on the Internet, peer-to-peer (p2p) networks have been developed to facilitate content distribution. P2p networks use the bandwidth and computing power of all the clients of the p2p network to distribute files, instead of relying upon a single web server. P2p networks work by splitting a large file into multiple file segments. The file segments are then distributed among the different clients of the p2p network. When a new client joins the p2p network, that client may begin retrieving file segments from the other p2p clients instead of from a single web server. As a result, large files can be transferred more easily between clients of the p2p network.
Although p2p networks facilitate the transfer of large files, the systems are not perfect. Because the clients communicate over different networks having varying performance and reliability, it may take longer for a p2p client to download a particular file segment from another p2p client. Furthermore, because clients are constantly joining and leaving the p2p network, particular file segments may become very scarce or even totally unavailable. These problems can severely impact the user's experience.
Many existing p2p networks employ a tracker computer or server that maintains a record of the p2p clients that are downloading a particular file from the p2p network. By maintaining this record, the tracker can facilitate communication between the p2p clients. In various network configurations. the tracker for a particular tile may be relatively easy to identify. However. some p2p network systems use a distributed tile location index, such as a distributed hash table (DHT). as a method of retrieving a file from the p2p network. Such methods. however, are often less effective at retrieving tiles. These systems may also hinder third-party monitoring and. caching of p2p network content.